home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / esc / JTreeTable.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  3.3 KB  |  77 lines

  1. package com.extensibility.esc;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Point;
  5. import java.awt.event.MouseEvent;
  6. import javax.swing.JPopupMenu;
  7. import javax.swing.JTable;
  8. import javax.swing.JTree;
  9. import javax.swing.ListSelectionModel;
  10. import javax.swing.table.TableCellEditor;
  11.  
  12. public class JTreeTable extends JTable {
  13.    protected TreeTableCellRenderer tree;
  14.    protected TreeTableModel treeModel;
  15.  
  16.    public JTreeTable(TreeTableModel var1) {
  17.       this.setTreeModel(var1);
  18.       ListToTreeSelectionModelWrapper var2 = new ListToTreeSelectionModelWrapper(this);
  19.       this.tree.setSelectionModel(var2);
  20.       ((JTable)this).setSelectionModel(var2.getListSelectionModel());
  21.       this.tree.setRowHeight(((JTable)this).getRowHeight());
  22.       ((JTable)this).setDefaultRenderer(Class.forName("com.extensibility.esc.TreeTableModel"), this.tree);
  23.       ((JTable)this).setDefaultEditor(Class.forName("com.extensibility.esc.TreeTableModel"), new TreeTableCellEditor(this));
  24.       ((Component)this).addMouseListener(new 1(this));
  25.    }
  26.  
  27.    public void setTreeModel(TreeTableModel var1) {
  28.       this.treeModel = var1;
  29.       this.tree = new TreeTableCellRenderer(this, var1);
  30.       super.setModel(new TreeTableModelAdapter(var1, this.tree));
  31.       this.tree.setScrollsOnExpand(true);
  32.    }
  33.  
  34.    public void updateUI() {
  35.       super.updateUI();
  36.       if (this.tree != null) {
  37.          this.tree.updateUI();
  38.       }
  39.  
  40.    }
  41.  
  42.    public TreeTableModel getTreeModel() {
  43.       return this.treeModel;
  44.    }
  45.  
  46.    public JTree getTree() {
  47.       return this.tree;
  48.    }
  49.  
  50.    public int getEditingRow() {
  51.       return ((JTable)this).getColumnClass(super.editingColumn) == Class.forName("com.extensibility.esc.TreeTableModel") ? -1 : super.editingRow;
  52.    }
  53.  
  54.    protected void doCellPopup(MouseEvent var1) {
  55.       Point var3 = var1.getPoint();
  56.       int var4 = ((JTable)this).rowAtPoint(var3);
  57.       int var5 = ((JTable)this).columnAtPoint(var3);
  58.       if (var4 != -1 && var5 != -1) {
  59.          ListSelectionModel var6 = ((JTable)this).getSelectionModel();
  60.          if (!var6.isSelectedIndex(var4)) {
  61.             var6.setSelectionInterval(var4, var4);
  62.          }
  63.  
  64.          TableCellEditor var2 = ((JTable)this).getCellEditor(var4, var5);
  65.          JPopupMenu var7 = this.createCellPopup(var1, var4, var5, var2);
  66.          if (var7 != null) {
  67.             var7.show(this, var3.x, var3.y);
  68.          }
  69.  
  70.       }
  71.    }
  72.  
  73.    protected JPopupMenu createCellPopup(MouseEvent var1, int var2, int var3, TableCellEditor var4) {
  74.       return null;
  75.    }
  76. }
  77.